package com.zzzy.sys.api;

import com.zzzy.common.vo.PageResult;
import com.zzzy.sys.dto.UserInfoDto;
import com.zzzy.sys.vo.UserSelectPageReq;

import java.util.List;

/**
 * Description: 暴露给其他模块使用的用户api
 *
 * @author fc
 * @date 2024/6/4
 */
public interface UserApi {

    /**
     * 获取用户信息
     * @param userId
     * @return
     */
    UserInfoDto getUserInfoById(Long userId);

    /**
     * 通过部门ID 获取用户信息
     * @param deptId
     * @return
     */
    List<UserInfoDto> getUserInfoListByDeptId(Long... deptId);

    /**
     * 查询用户列表
     * @param queryReq
     * @return
     */
    PageResult<UserInfoDto> userSelectPage(UserSelectPageReq queryReq);

    /**
     * 判断用户是否有指定权限
     * @param userId
     * @param permission
     * @return
     */
    boolean hasPermission(Long userId, String permission);
}
